/**
 * 登陆组件，每次调用时都会弹出授权框；(一般只需授权一次，把数据保存到数据库)
 */
Component({
    options: {
        //multipleSlots: false    //是否允许多个slot
    },

    /** 组件的属性列表 */
    properties: {
        logo: {
            type: String,
            value: '../../images/logo.png'
        },
        name: {
            type: String,
            value: '记账叭'
        },
    },

    /** 组件的初始数据 */
    data: {
        showDialog: false,
        canIUseGetUserProfile: !!wx.getUserProfile,
        canIUseGetUserInfo: wx.canIUse('button.open-type.getUserInfo'),
        userInfo: null,
    },

    /** 组件生命周期函数 */
    lifetimes: {
        created: function() {},
        attached: function() {},
        ready: function() {},
        moved: function() {},
        detached: function() {},
        error: function() {}
    },
    
    /** 组件所在页面的生命周期函数 */
    pageLifetimes: {
        show: function () {},
        hide: function () {},
        resize: function () {},
    },

    /** 组件的方法列表 */
    methods: {
        show() {
            // wx.hideTabBar({ animation: false })
            this.setData({ showDialog: true })
        },

        hide() {
            this.setData({ showDialog: false })
            // wx.showTabBar({ animation: false })
        },

        getUserProfile(e) {
            // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认
            // 开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
            wx.getUserProfile({
                desc: '用于完善用户资料', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
                success: (res) => {
                    console.log('getUserProfile', res)
                    this.setData({ userInfo: res.userInfo })
                    this.triggerEvent('getUserInfo', res.userInfo)
                    this.hide()
                }
            })
        },

        getUserInfo(e) {
            this.setData({ userInfo: e.detail.userInfo })
            // 不推荐使用getUserInfo获取用户信息，预计自2021年4月13日起，getUserInfo将不再弹出弹窗，并直接返回匿名的用户个人信息
            this.triggerEvent('getUserInfo', e.detail.userInfo)
            this.hide()
        },

        getCachedUserInfo() {
            this.triggerEvent('getUserInfo', this.data.userInfo)
            this.hide()
        }

    }
})